/*
 * NodoBSharpChar.h
 *
 *  Created on: 01/10/2010
 *      Author: jijodra
 */

#ifndef NODOBSHARPSTRING_H_
#define NODOBSHARPSTRING_H_

#include <iostream>
#include <vector>
#include "Puntero.h"
#include "RegistroBSharpString.h"
#include "../moduloAlmacenamiento/ManejadorAccesoDatos.h"

using namespace std;

class NodoBSharpString {
public:
	static const short NODO_RAIZ;
	static const short NODO_HOJA;
	static const short NODO_INDICE;

	short tipo;
	int cantClavesUsadas;
	int cantRegistrosUsados;
	long numNodo;
	long numBloque;
	Puntero anterior;
	Puntero siguiente;
	vector<string> claves;
	vector<Puntero> punteros;
	vector<RegistroBSharpString> registros;

	NodoBSharpString();
	NodoBSharpString(short tipo);
	long CalcularTamanio(NodoBSharpString nodo);
	long CalcularTamanio(vector<NodoBSharpString> nodos);
	void Salvar(char* fileName);
	void Obtener(char* fileName, Puntero puntero);
	void Limpiar();
	virtual ~NodoBSharpString();
};

#endif /* NODOBSHARPSTRING_H_ */
